// Learn cc.Class:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/class.html
//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/class.html
// Learn Attribute:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html

let eventCenter =   cc.Class({
    extends: cc.Component,

    properties: {
        eventMap:[],
    },
    init(){
        this.eventMap = [];
    },

    addEvent(key,cb){
        let ret = this.isHasEvent(key);
        if(ret != 1)
        {
            this.eventMap[key] = cb;
        }
        else
        {
            cc.log("event has exist ",key);
        }
    },


    isHasEvent(key){
        let ret = -1;
        if(this.eventMap[key] == null)
        {
            ret  = 0 ;
            return ret ;
        }
        else
        {
            ret = 1;
            return ret ;
        }
          
    },

    dispatchEvent(key,data){
        let ret = this.isHasEvent(key);
        if(ret == 1)
        {
            this.eventMap[key](data);
        }
    }
});

module.exports = eventCenter;
